#ifndef _ENT_CAMERAFOLLOW_H_
#define _ENT_CAMERAFOLLOW_H_

#include <stdio.h>
#include "../../ExEngine/common/hashtable.hpp"
#include "../../ExEngine/common/arraylist.hpp"

#include "../../ExEngine/render/interface_types.h"
#include "../../ExEngine/sound/dsound.h"
 

#include "../game/core.h"
#include "../game/timer.h"

class CCameraToggle : public CObject
{
private:

	CTimer m_transitionTimer;
	Game::PlayMode m_postTransitionState;
	bool m_isValid;

public:
	
	typedef  void (CCameraToggle::*EvtHandler)(void);
	void CallEvent(EvtHandler memFn)
	{
		(this->*(memFn))();
	}

	void Idle();

	CCameraToggle();
	HRESULT Create();
	HRESULT Release();
	
	
	void OnCollisionEvent(const Vector3f& contactPoint, const Vector3f& contactNormal, CObject* pOtherObject);
	void setPosition(const Vector3f &position); 

	void Update(const float dt);
	void Draw(void); 

	bool isValid();
};

#endif